/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2023-12-25
 * Time: 22:18
 */

//  7-11 淘汰赛冠军(减治法)  --- C++版本

/*#include <iostream>
#include <vector>

using namespace std;

        int n = 0;
        int num = 0;

        void func(vector<long long>& arr1, vector<long long>& arr2, vector<int>& index2, int size2) {
        long long ret1 = arr1[n]; // 这一轮的权值拿到了
        n++;

        if (size2 == 2) {
        long long a = (arr2[0] * ret1) % 998244353;
        long long b = (arr2[1] * ret1) % 998244353;
        if (a > b) {
        num = index2[0];
        } else {
        num = index2[1];
        }
        return;
        }

        int mid = size2 / 2;
        int i = 0;
        int j = mid;
        int m = 0;

        while (j < size2) {
        long long a = (arr2[i] * ret1) % 998244353;
        long long b = (arr2[j] * ret1) % 998244353;

        if (a > b) {
        arr2[m] = arr2[i];
        index2[m] = index2[i];
        m++;
        } else if (a < b) {
        arr2[m] = arr2[j];
        index2[m] = index2[j];
        m++;
        } else if (a == b) {
        arr2[m] = arr2[i];
        index2[m] = index2[i];
        m++;
        }

        i++;
        j++;
        }

        func(arr1, arr2, index2, size2 / 2);
        }

        int main() {
        int n, k;
        cin >> n >> k;
        vector<long long> arr1(k);
        for (int i = 0; i < k; i++) {
        cin >> arr1[i];
        }
        vector<long long> arr2(n);
        vector<int> index2(n);
        for (int i = 0; i < n; i++) {
        cin >> arr2[i];
        index2[i] = i + 1;
        }

        func(arr1, arr2, index2, n);

        cout << num << endl;

        return 0;
        }*/











/*import java.util.Scanner;

public class Main {

    public static int nn=0;//表示进行第几轮比赛了
    //public static int num=0;//存放最终结果的编号（下标加一）

    public static  int game(int[] arr1,int[] arr2,int[] index,int n){

        int i=n;
        while(i>1){
            i=i/2;


            for(int j=0;j<i;j++){
                if(comp(arr1[nn],arr2[i+j],arr2[j])){
                    arr2[j]=arr2[j+i];
                    index[j]=index[i+j];
                }
            }


            n++;
        }

        return index[0];

    }


    public static boolean comp(int qun,int play1,int play2){
        int a=(play1*qun) % 998244353;
        int b=(play2*qun) % 998244353;

        if(a>b){
            return true;
        }

        return false;
    }


    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int k=sc.nextInt();
        int[] arr1=new int[k];
        for(int i=0;i<k;i++){
            arr1[i]=sc.nextInt();
        }
        int[] arr2=new int[n];
        int[] index2=new int[n];
        for(int i=0;i<n;i++){
            arr2[i]=sc.nextInt();
            index2[i]=i+1;
        }
        //第一行输入一个整数 n,k  保证 n 的值为 2 的 k 次方
        //第二行输入一行 k 个数 b   表示第 i 轮的能力值权重
        //第三行输入 n 个整数 a    a 表示选手的初始能力值， i 为选手的编号
        // 如果两个选手的战斗能力值相同，则编号小的获胜
        // 战斗能力值 = (初始能力值 * 第 i 轮的能力值权重) % 998244353

        int num=game(arr1,arr2,index2,n);

        System.out.println(num);

    }






}*/















/*import java.util.Scanner;

public class Main {

    public static int n=0;//表示进行第几轮比赛了
    public static int num=0;//存放最终结果的编号（下标加一）

    public static  void func(long[] arr1,long[] arr2,int[] index2, int size2){

        long ret1=arr1[n];//这一轮的权值拿到了
        n++;

        if(size2==2){
            long a=(arr2[0]*ret1) % 998244353;
            long b=(arr2[1]*ret1) % 998244353;
            if(a>b){
                num=index2[0];
            }else{
                num=index2[1];
            }
            return;
        }



        //size2就是arr2数组的有效元素的个数
        //找到arr2数组有效元素中的中位数的位置
        int mid=size2/2;
        // 1 ,7, 3, 8   size2=4  mid=2

        int i=0;
        int j=mid;
        int m=0;//用来记录arr2数组的此轮有效的元素个数，最后可以当做新的size2使用

        while(j<size2){
            //比较j和i下标对应的值，然后把较大值放到arr2数组的前面去
            //(初始能力值 * 第 i 轮的能力值权重) % 998244353
            long a=(arr2[i]*ret1) % 998244353;
            long b=(arr2[j]*ret1) % 998244353;

            if(a>b){
                arr2[m]=arr2[i];
                index2[m]=index2[i];
                m++;
            }else if(a<b){
                arr2[m]=arr2[j];
                index2[m]=index2[j];
                m++;
            }else if(a==b){
                //要下标值较小的那个
                arr2[m]=arr2[i];
                index2[m]=index2[i];
                m++;
            }

            i++;
            j++;
        }


        func(arr1,arr2,index2,size2/2);


    }


    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int k=sc.nextInt();
        long[] arr1=new long[k];
        for(int i=0;i<k;i++){
            arr1[i]=sc.nextLong();
        }
        long[] arr2=new long[n];
        int[] index2=new int[n];
        for(int i=0;i<n;i++){
            arr2[i]=sc.nextLong();
            index2[i]=i+1;
        }
        //第一行输入一个整数 n,k  保证 n 的值为 2 的 k 次方
        //第二行输入一行 k 个数 b   表示第 i 轮的能力值权重
        //第三行输入 n 个整数 a    a 表示选手的初始能力值， i 为选手的编号
        // 如果两个选手的战斗能力值相同，则编号小的获胜
        // 战斗能力值 = (初始能力值 * 第 i 轮的能力值权重) % 998244353

        func(arr1,arr2,index2,n);

        System.out.println(num);

    }






}*/
